home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 015 / tdprt22.arc / TDPRT.DOC < prev   
Encoding:
Text File  |  1987-11-15  |  26.8 KB  |  604 lines

  1.  
  2.                                Saxman Software
  3.                               Tools Disk Series
  4.  
  5.  
  6.  
  7.          Program:  TDPRT
  8.          Version:  2.2  11/15/87
  9.          Purpose:  Print one or more files
  10.           Syntax:  TDPRT [ filespec ... ]  [ ( options ]
  11.               Or:  TDPRT [ filespec ... ]  [ /options  ]
  12.           Author:  Jim Standley, Saxman Software
  13.         Language:  TURBO Pascal
  14.  
  15.  
  16.       Overview
  17.  
  18.          TDPRT is an enhanced PRINT command.  It will print text files
  19.          with control over page format and printer features.  Here are
  20.          the special optional features of TDPRT:
  21.  
  22.             Search path like DOS searches for programs.
  23.             Multiple filespecs, Globals, & Wildcards.
  24.             Default heading, user heading, or none.
  25.             Optional ruler line on each page.
  26.             Skip over perforation on or off.
  27.             Printer fonts & other options.
  28.             Six or eight Lines Per Inch.
  29.             Three user defined printer options.
  30.             Line numbers.
  31.             Page numbers.
  32.             Print a range of lines.
  33.             Print a range of pages.
  34.             Wrap or truncate long lines.
  35.             Form length in inches.
  36.             Form width in characters.
  37.             Left margin in characters.
  38.             Change tab width.
  39.             Form feeds are handled.
  40.             Redirection to disk.
  41.             Add disk output to DOS print queue.
  42.             Customize option defaults.
  43.             Customize printer escape sequences.
  44.  
  45.  
  46.       Printer compatibility:
  47.  
  48.          TDPRT sends escape  sequences to the  printer for print  mode
  49.          and  lines-per-inch  options.   Values  for  these, and three
  50.          user-defined  printer  setup  strings,  can  be modified on a
  51.          permanent basis to "install" the program for a given printer.
  52.  
  53.          If you configure TDPRT for another printer, send me the setup
  54.          strings you use so I can add them to future releases of  this
  55.          document.  Other printers could  be added in options  similar
  56.          to the "FX" and "NECP3" options.
  57.  
  58.  
  59.       Spooler Compatibility
  60.  
  61.          With Release 2.2  TDPRT uses BIOS  interrupt 17(hex) to  send
  62.          output to  the printer.   It  is my  understanding that  most
  63.          spooler  programs   should  intercept   this  interrupt   and
  64.          correctly send  the output  to the  spooler buffer.   I would
  65.          like to  know if  you find  spoolers that  have difficulty or
  66.          will not work with TDPRT.
  67.  
  68.  
  69.       Running TDPRT:
  70.  
  71.          All options  for TDPRT  are given  on the  command line.  The
  72.          only interactive part of the program is printer setup  string
  73.          configuration.  TDPRT recognizes two slightly different forms
  74.          of command line syntax:
  75.  
  76.             TDPRT  [ filespec ... ]  [ ( option ... ]
  77.             TDPRT  [ filespec ... ]  [ /option ... ]
  78.  
  79.          Examples:
  80.  
  81.             TDPRT  MY.PAS ( compressed  margin 10  width 96  numbers
  82.             TDPRT  MY.PAS  /compressed /margin 10 /width 96 /numbers
  83.  
  84.          You can pause the program at any  time by  pressing any  key.
  85.          It will give you the option to abort printing or continue.
  86.  
  87.  
  88.       Filespec:
  89.  
  90.          At least one file specification is required.  You can give up
  91.          to ten.  For each one:
  92.  
  93.             If it contains a drive  letter or directory name (a  colon
  94.             or a backslash) only the specified drive or directory will
  95.             be searched for the file.
  96.  
  97.             If it contains global or wildcard characters (asterisk  or
  98.             question  mark)  only  the  current directory or specified
  99.             directory will be searched.
  100.  
  101.             If  the  filespec  does  not  contain any of those special
  102.             things, TDPRT will search the current directory then  each
  103.             directory in the path.
  104.  
  105.          Examples:
  106.  
  107.             FRED.PAS        - Path Searching ON
  108.             *.PAS           - Path Searching OFF current dir only
  109.             C:\FRED.PAS     - Path Searching OFF C:\ only
  110.  
  111.  
  112.          Prior  to  version  2.2  there  was  a  bug when the filespec
  113.          included a  drive or  path and  a global  or wildcard.   With
  114.          version 2.2 or later, this will work:
  115.  
  116.             TDPRT C:\ANOTHER\SUBDIR\*.*
  117.  
  118.  
  119.       Option overview:
  120.  
  121.          Syntax format 1 is patterned after IBM's VM/CMS.  Options are
  122.          given after an open paren.  Anything before the paren is  the
  123.          filespec list and anything after is the option list.  Options
  124.          are all keywords, some with associated values following them.
  125.          The keywords are self-descriptive and easy to remember.
  126.  
  127.          Format 2 is more common to DOS applications.  Each option  is
  128.          given with a slash.  As with format 1, all filespecs must  be
  129.          given  before  the  first  option.   You don't need any slash
  130.          options before  a quoted  title.  The  following rules  about
  131.          minimum truncations are the same with either format.
  132.  
  133.          Here are all the options in alpha order (except  user-defined
  134.          options which  are last.)   The  shortest valid abbreviations
  135.          are in caps.   Shortest abbreviation  was derived by  putting
  136.          them in the order shown below and seeing how many letters are
  137.          needed to  tell each  from the  one before  it.   When you're
  138.          learning, you may feel  more comfortable typing in  the whole
  139.          word.  When you're more proficient you can save some time  by
  140.          abbreviating.  As a matter  of style, I always code  the full
  141.          keyword in BATCH files.
  142.  
  143.          Compressed      - Compressed print mode.
  144.          DOS             - Add disk output to DOS queue.
  145.          DOUble          - Double strike print mode.
  146.          Elite           - Elite print mode.
  147.          EMphasized      - Emphasized print mode.
  148.          Formlength nn   - Form length in inches, decimal fractions.
  149.          FROMLine        - Starting line of input to be printed.
  150.          FROMPage        - Starting page of ouptut to be printed.
  151.          FX              - Set escape sequences for Epson FX.
  152.          Header          - Enable standard page header
  153.          Italic          - Italic print mode.
  154.          Length nn       - Exactly like formlength.
  155.          LInenumber      - Line numbers down left side of page.
  156.          LPi n           - Six or eight LPI.
  157.          Margin nn       - Left margin width in characters.
  158.          Necp3           - Set escape sequences for NEC P3.
  159.          NODos           - Do not use DOS print queue.
  160.          NUmbers         - Exactly like LInenumber.
  161.          Pathsearch      - Enable path searching
  162.          PAgenum         - Forces page numbers on user heading.
  163.          PIca            - Pica print mode.  Cancels Elite.
  164.          PRoportional    - Proportional print mode.
  165.          RUler           - Scale line on each page.
  166.          SCale           - Scale line on each page.
  167.          SOp             - Enable skip over perforation.
  168.          STandard        - Reset to 'factory specs'.
  169.          Tofile filespec - Redirect output to a file.
  170.          TOLine          - Ending line of input to be printed.
  171.          TOPage          - Ending page of output to be printed.
  172.          TAbwidth nn     - Change tab width
  173.          TRuncate        - Truncate long input lines.
  174.          Userheader      - TDPRT will prompt for a user heading.
  175.          Width nn        - Form width in characters.
  176.          WRap            - Split long input lines into two or more.
  177.          P1              - User print setup string #1.
  178.          P2              - User print setup string #2.
  179.          P3              - User print setup string #3.
  180.          'header'        - A user header can be entered on the command.
  181.          "header"          line.  Enclose it in apostrophes or double
  182.                            quotes.
  183.  
  184.          The following options can be given with prefix 'NO' to  unset
  185.          them: COMPRESSED  DOS DOUBLE  ELITE EMPHASIZED  HEADER ITALIC
  186.          NUMBERS PAGENUM PATHSEARCH PICA PROPORTIONAL RULER SCALE  SOP
  187.          WRAP.  Also, user defined keyword options P1, P2 and P3 can
  188.          be deselected with NO.
  189.  
  190.          If opposing options  are given, the  last one on  the command
  191.          line is  used.  For  example, if  you give  "WRAP TRUNC" then
  192.          WRAP will be overridden and TRUNC will be used.
  193.  
  194.          If invalid options or combinations of options are given,  the
  195.          program will display an  error message, the options  given on
  196.          the command line, and the values of all options with  command
  197.          line overrides.
  198.  
  199.  
  200.       Modifying defaults
  201.  
  202.          I created  the program  with the  options I  prefer.  You can
  203.          reset  the  program  to  this  arbitrary  standard  with  the
  204.          "STANDARD"  keyword.    To  view  my defaults, enter "TDPRT (
  205.          STANDARD QUERY".   If you want  to make these  your defaults,
  206.          keep reading.
  207.  
  208.          The following keyword options are given without a filespec to
  209.          view or modify default values.   If you give a filespec  with
  210.          these options, it is ignored.  These do not print anything.
  211.  
  212.          Query          - Display current option values.
  213.          Set            - Entered with options, saves those
  214.                           options as new defaults.
  215.          SAve           - Same as Set
  216.          CONfigure      - View and modify printer control strings.
  217.  
  218.          The program file "TDPRT.COM" must be in the current directory
  219.          or in a directory in the path for SAVE and CONFIGURE options.
  220.          It uses the DOS rules for path searching for the COM file  to
  221.          modify, even if you invoke it from another drive or directory
  222.          on the command line.  Examples:
  223.  
  224.             TDPRT ( QUERY
  225.             TDPRT ( LPI 8 MARGIN 10 COMPRESSED NUMBERS SAVE
  226.             TDPRT ( CONFIGURE
  227.  
  228.          Bad examples:
  229.  
  230.             C>A:TDPRT ( CON          - Won't work unless A: is in path
  231.             \NOTNPATH\TDPRT ( CON    - You can tell DOS what directory
  232.                                        a program is in with 3.0+.  Bad
  233.                                        idea with Save/Configure.
  234.  
  235.  
  236.       Some Option Details:
  237.  
  238.          LENGTH / FORMLENGTH nn - Give the form length in inches  with
  239.             these keywords.  The program knows how many lines per inch
  240.             it is printing  and works out  lines per page  from there.
  241.             For example "FO 8.5" for 8 1/2 inch  paper.  Maximum lines
  242.             per page is 255 lines.
  243.  
  244.  
  245.          MARGIN nn - Give a number of characters for left margin.  You
  246.             might use  this to center  compressed printing on the page
  247.             or provide room for hole-punching.  See WIDTH.
  248.  
  249.  
  250.          WIDTH nn -  Give the form  width in characters.   This is the
  251.             right-most  column  that  TDPRT  will print.  Subtract the
  252.             margin and the size of line numbers (6) to get the  number
  253.             of characters that can be printed on a line.  For example,
  254.             with "WIDTH 80 MARGIN  10 NUMBERS" TDPRT will  truncate or
  255.             wrap after 64 characters of input.  (80 - 10 - 6 = 64).
  256.  
  257.  
  258.          HEADERS - The default header is the filename and page number.
  259.             The option NOPAGENUM will leave the filename in the header
  260.             but turn off the  page number.  The option  NOHEADER turns
  261.             off the header completely.
  262.  
  263.             There are  two ways  to give  a user-defined  header.  The
  264.             first is the option UHEADER.  If this option is given, the
  265.             program will prompt for a header.
  266.  
  267.             The second way is to enter the user header on the  command
  268.             line,  enclosed  in  single  or  double quotes.  The close
  269.             quote  is  not  needed  if  this  is the last thing on the
  270.             command line.
  271.  
  272.             Either way you give a  user header, you can tell  TDPRT to
  273.             put the  file name  in the  header by  giving "/f"  as the
  274.             first two characters.  You  can inlude the page  by giving
  275.             "/p" as the last two characters.  If you want page numbers
  276.             but no filename, just enter "/p".
  277.  
  278.             Example:
  279.  
  280.                TDPRT *.PAS ( '/f My PASCAL Files /p'
  281.                TDPRT *.PAS ( "/p"      - page numbers only
  282.                TDPRT *.PAS ( '/f'      - file names only
  283.  
  284.  
  285.          TOFILE and DOS. The TOFILE option names a file to be used for
  286.             output.   You  can  use  the  other  TURBO Pascal standard
  287.             devices here, for example "TOFILE CON:".
  288.  
  289.             If you are running a  compatible version of DOS 3.0+,  and
  290.             you have already installed the resident portion of  PRINT,
  291.             you can use the DOS option  to put the disk file into  the
  292.             DOS print  queue.
  293.  
  294.             If you look at the  output file, depending on the  program
  295.             you use, it may appear to have one extra line.  This  line
  296.             contains the reset string.  It is written without carriage
  297.             return and  line feed,  so it  will not  print as an extra
  298.             line.  Some editors may  add the carriage return  and line
  299.             feed if you save the file.
  300.  
  301.  
  302.          FROMLINE-TOLINE  or  FROMPAGE-TOPAGE.   These  options can be
  303.             used to  print a  selected portion  of a  file.  The  LINE
  304.             options  refer  to  line  numbers  in the input file.  For
  305.             example, use this to print part of a program for reference
  306.             with a debugger that requires line numbers.
  307.  
  308.             The  PAGE  options  refer  to  page numbers in the output.
  309.             This might be  used to reprint  pages which were  eaten by
  310.             the printer.
  311.  
  312.             You can give FROM or TO without the other, but you  cannot
  313.             mix LINE and PAGE ranges.
  314.  
  315.  
  316.          PRINT MODES.   All selected  setup strings  except RESET  are
  317.             sent before the  first file is  printed.  Either LPI  6 or
  318.             LPI 8 is always selected.  The RESET string is always sent
  319.             after the last file is  printed or the program is  halted.
  320.             It should cancel all the others.
  321.  
  322.             Prior to  version 2.0  you could  not deselect  print mode
  323.             options which were set  as your personal defaults.   As of
  324.             version 2.0, you can singly deselect any print mode option
  325.             with  the  NO  prefix,  for  example:  NOELITE.  Also, the
  326.             keyword PICA was added, which is identical to NOELITE.
  327.  
  328.             Setup strings can be set to  "null".  It is an error if  a
  329.             null string is selected on the command line.
  330.  
  331.  
  332.       Printer Configuration.
  333.  
  334.          The option CONFIGURE enters configuration mode.  Printer mode
  335.          options (COMPRESSED, ELITE,  DOUBLE, EMPHASIZED, ITALIC,  LPI
  336.          n,  PROPORTIONAL,  P1-P3  and  RESET)  send hardware-specific
  337.          escape sequences to  the printer.  These  are all the  escape
  338.          codes used by TDPRT; no other options send any special codes.
  339.  
  340.          TDPRT was written  for Epson FX  series printers, but  can be
  341.          configured for  any printer.   The FX  option on  the command
  342.          line resets all escape sequences for Epson FX printers.  Each
  343.          sequence can  be up  to 25  bytes long.   Use P1-P3  to enter
  344.          additional setup strings for your own needs.
  345.  
  346.          The Configure  option brings  up a  screen listing  the setup
  347.          strings.   You  select  one  for  modification.   TDPRT  will
  348.          display it  in decimal-ASCII  and in  character, and  let you
  349.          type in a  new one.  Just  press enter to  keep the old  one,
  350.          type "null" in lower case  to delete the string.  (Yes,  this
  351.          precludes having a printer  setup string of "null";  a chance
  352.          I'll take.)
  353.  
  354.          Here's how to enter a  new string.  To enter a  decimal ASCII
  355.          code, type slash  and three digits.   For example, escape  is
  356.          /027.  To enter  a character, just  type the character.   For
  357.          example, Proportional mode is  escape "p1", or "/027p1".   To
  358.          enter a slash character, type two slashes "//".
  359.  
  360.          Here  are  the  setup  strings  for Epson FX series printers.
  361.          Letters must be entered in upper and lower case as shown.
  362.  
  363.             Compressed       /015
  364.             Double           /027G
  365.             Elite            /027M
  366.             Emphasized       /027E
  367.             Italic           /0274
  368.             Proportional     /027p1
  369.             Six LPI          /0272
  370.             Eight LPI        /0270
  371.             Reset            /018/027H/027P/027F/0275/0272/027p0
  372.  
  373.          Here are the setup strings for NEC P3 and compatible printers
  374.  
  375.             Compressed       /027?7
  376.             Double           /027G
  377.             Elite            /027?3
  378.             Emphasized       /027?1
  379.             Italic           null
  380.             Proportional     /027?5
  381.             Six LPI          /0272
  382.             Eight LPI        /0270
  383.             NLQPICA          /027?2
  384.             NLQELITE         /027?4
  385.             NLQPROP          /027?6
  386.             Reset            /018/027H/0272/027?0
  387.  
  388.          I didn't  use the  Epson Master  Reset sequence  to reset the
  389.          Epson as this cancels any other things you might have sent to
  390.          the printer, such as downloaded fonts, form lengths, etc.
  391.  
  392.          Remember, the strings you see on the Configure screen are the
  393.          only escape sequences  sent to the  printer.  If you've  been
  394.          wondering if TDPRT used  special printer commands to  control
  395.          margins or line width or anything else, the answer is NO. You
  396.          could certainly add any kind of printer commands you like  to
  397.          the setup strings.
  398.  
  399.          You can modify the names of the user-defined printer  strings
  400.          and use the new names  on the command line.  For  example, if
  401.          your printer has a Near Letter Quality mode you might  rename
  402.          P1 as "NLQ".  Don't put any spaces in the name.
  403.  
  404.          Your new  name replaces  the old  in the  parsing routine; it
  405.          must not duplicate  any other option  keywords, and you  must
  406.          enter enough letters  on the command  line to distinguish  it
  407.          from the  other keywords.   You can  use 'NO'  with your  own
  408.          options, for example 'NONLQ'.
  409.  
  410.  
  411.       Tabs
  412.  
  413.          TDPRT expands tab characters before checking line length  for
  414.          WRAP or TRUNCATE.  Tabs are multiples of TabWidth plus 1. For
  415.          the default tab width  of 8, this means  1, 9, 17 etc.   Some
  416.          programmers prefer tab width of 3 for source listings, giving
  417.          1, 4, 7, 10, etc.  A tab width of 1 would simply convert tabs
  418.          into spaces.  The maximum TabWidth is 30.
  419.  
  420.  
  421.       Form Feeds
  422.  
  423.          If TDPRT encounters a form-feed (Chr(12)) in the input  file,
  424.          it ends the current page and starts the next.  Page numbering
  425.          is correctly maintained.
  426.  
  427.          Some word processors and other applications send a form  feed
  428.          before  printing,  but  not  after.   This  makes them nicely
  429.          compatible with themselves,  but not necessarily  you.  Their
  430.          idea is that  the form feed  guarantees they will  start on a
  431.          fresh page, regardless of  what program might have  printed a
  432.          partial page already.
  433.  
  434.          My objection is  that I almost  always advance the  paper and
  435.          tear off the  latest pages for  proofing as soon  as they are
  436.          done.  When a program sends another form feed before the next
  437.          job, it wastes a whole sheet of paper.
  438.  
  439.          TDPRT does  NOT send  a form  feed before  printing.  If  you
  440.          would like it to, just add  "/012" to 6 LPI and 8  LPI, since
  441.          one or the other is always sent.  To make it optional, put it
  442.          in one of the user setup strings.
  443.  
  444.          TDPRT doesn't send a formfeed at the end of the job.  It does
  445.          print enough  blank lines  to advance  the paper  to the next
  446.          form.  If you'd like an extra form feed after, add it to  the
  447.          RESET string.
  448.  
  449.  
  450.       Usage Notes:
  451.  
  452.          I'm the first to admit that the options can be  overwhelming.
  453.          Many users will spend some time experimenting, settle on  one
  454.          combination of options, make them their personal default, and
  455.          forget the rest.  If you find several complex sets of options
  456.          you need for different  purposes, you might make  batch files
  457.          to invoke TDPRT  with the ones  you need.   SET and CONFIGURE
  458.          options will not work if you rename the COM file.
  459.  
  460.          I sometimes get the program configured with many options  and
  461.          want to print something "vanilla" without any of them.   That
  462.          is why "STANDARD" is there.  It resets everything except  the
  463.          printer setup strings to  the "factory" specs.  Anything  you
  464.          code before STANDARD is ignored; anything after is used.
  465.  
  466.          The same kind of reset is available for printer setup strings
  467.          with the FX option.  Issue both of the following commands  to
  468.          return EVERYTHING to normal:
  469.  
  470.             TDPRT ( STANDARD SAVE
  471.             TDPRT ( FX CONFIGURE
  472.  
  473.          Do NOT give a header in quotes on the command line when doing
  474.          SAVE.  I'm working on a  fix that would let you  do something
  475.          like "/f Your  Name /p".  You  can give UHEADER  with SAVE to
  476.          make the program always prompt you for a header.
  477.  
  478.  
  479.       Printer Ready
  480.  
  481.          TDPRT checks to  see if the  printer is ready  before sending
  482.          output to it.  If the printer is not available, you have  the
  483.          choice of getting it online and trying again, or halting  the
  484.          program.
  485.  
  486.          If the printer  runs out of  paper or goes  offline after the
  487.          program has started, you  will still get the  dreaded "Abort,
  488.          Retry or Ignore"  message from DOS.  If you TOFILE  to a disk
  489.          file, TDPRT won't check the printer.
  490.  
  491.  
  492.       Favorite setups:
  493.  
  494.          My favorite right now is "( ELITE MAR 10 WIDTH 96 NUM LPI 8".
  495.          I use  this with  program listings.   I need  numbers for the
  496.          CLIPPER  debugger.   The  margin  and  elite  type leave wide
  497.          margins for binding  or pencil notes.   Eight lines per  inch
  498.          gets more stuff on fewer pages.   Let me know if you come  up
  499.          with nice combinations.
  500.  
  501.  
  502.       Suggested enhancements:
  503.  
  504.          These things  will be  added to  TDPRT if  possible and as my
  505.          time allows:
  506.             Allow /d and /t for date and time in headers.
  507.             Allow /f and /p anywhere in the header.
  508.  
  509.  
  510.  
  511.       Distribution:
  512.  
  513.          This  program,  in  source  and  object form, is protected by
  514.          copyright  law,  and  is  NOT  in  the public domain.  It is,
  515.          however, "user-distributed".  It may be distributed freely in
  516.          any manner, with the following restrictions:
  517.  
  518.             1 - Do not charge for distribution of this program, beyond
  519.                 the cost of reproduction & mailing.
  520.             2 - Distribute this documentation with the program.
  521.             3 - Leave the author's name & address in the document.
  522.             4 - Do not distribute modified versions.
  523.  
  524.          It is the author's desire  that no other party make  a profit
  525.          from  distribution  of  this  program.   I  specifically deny
  526.          permission to use  this program to  companies like PC-Sig  or
  527.          bulletin boards which charge for download privileges.
  528.  
  529.          If you want to promote user-distributed software and feel the
  530.          program is useful enough to be worth $15.00, the contribution
  531.          will certainly  be appreciated.   It will  also get  you on a
  532.          mailing  list  for  future  versions  and  other   utilities.
  533.          Include a  diskette and  self-addressed mailer  if you'd like
  534.          the source code.  Source code may not be distributed by you.
  535.  
  536.  
  537.       Availability:
  538.  
  539.          Current versions  of all  Saxman Software  Tools Disk  Series
  540.          programs are  available from  the Information  Booth bulletin
  541.          board in Wichita.   The board is  also a good  way to contact
  542.          the author.
  543.  
  544.             Information Booth   316-684-8744   300-1200-2400   8-n-1
  545.  
  546.          This board  normally requires  registration and  a number  of
  547.          upload contributions before allowing downloads.  For  certain
  548.          special  products  listed  on  the  introductory screen these
  549.          requirements are waived.  You  will be able to  download most
  550.          Saxman Software programs on the first call.  See  TDTOOLS.TXT
  551.          for a list of Tools Disk programs.
  552.  
  553.  
  554.       Author:
  555.  
  556.          Jim Standley
  557.          Saxman Software
  558.          2350 Winstead Circle
  559.          Wichita, Ks  67226
  560.          316-688-0235  18:00-22:00  CST
  561.  
  562.  
  563.       Revision Log:
  564.  
  565.          10/04/86 - First public version
  566.          10/11/86 - Tabs expansion added
  567.                     Standard option extended to reset all options.
  568.                     Save & Configure search path for the COM file.
  569.                     FX option added.
  570.                     Corrected bug that lost characters at end of file.
  571.          10/28/86 - Slash options allowed.
  572.                     Space after open paren not required.
  573.                     Title in single or double quotes.
  574.                     FROMLINE, TOLINE, FROMPAGE, TOPAGE added.
  575.                     TO option changed to TOFILE.  Min abbrev the same.
  576.                     FormLength 255 line max added.
  577.                     Version 1.4, never released.
  578.          11/14/86 - Corrected formlength bug that made multiple files
  579.                     "creep" down the paper.
  580.                     Added DOS option.
  581.                     Enhanced display on errors.
  582.                     Version 1.5.
  583.          12/28/86 - Corrected bug when title was first option.
  584.                     Corrected new creep problem introduced in 1.5.
  585.                     Added user names for user print options.
  586.                     Version 1.6.
  587.          03/07/87 - Added printer check before starting print.
  588.                     Version 1.7.
  589.          05/24/87 - Minor cosmetic change to error handling.
  590.                     Version 1.8.
  591.          08/11/87 - Added NEC P3 option.
  592.                     Version 1.9.
  593.          09/27/87 - Added PICA option, plus NOxxxx for all print
  594.                     modes.  Corrected some oversights in duplicate
  595.                     keywords.  Now all documented options work!
  596.                     Version 2.0.
  597.          10/22/87 - Added TabWidth
  598.                     Version 2.1.
  599.          11/15/87 - Correct global or wildcard in another directory.
  600.                     Thanks to Doug McGrath for pointing out the bug.
  601.                     Change to BIOS interrupt for printing.
  602.                     Corrected bug with TabWidth > 8.
  603.                     Version 2.2.
  604.